package com.ceolt.dao;

import java.util.Map;
import java.util.Set;

import com.ceolt.entity.Vocabulary;
import com.ceolt.entity.Word;

/***************************************
 * 
 * @description 获取整个词汇库数据接口
 * @author yejf
 * @date 2013-6-28 下午10:31:57
 * @version jdk1.6
 *
 */
public interface IBaseTermDao {

	// 指定存放单词数据文件的位置
	String WORD_FILE = "datas/dic/w.dic";
	
	// 指定存放词汇数据文件的位置
	String VOCABULARY_FILE = "datas/dic/v.dic";

	/*******
	 * 加载单词数据文件，获取所有的单词数据，并使用 Set存储并返回 因为Set可以保证不重复。
	 * 
	 * @return
	 */
	Set<Word> getAllWords();

	/********
	 * 加载词汇数据文件，获取所有的词汇数据，并使用 Set存储并返回
	 * 
	 * @return
	 */
	Set<Vocabulary> getAllVocabularies();

	/*******
	 * 此方法是为支持第二个业务[做游戏学习单词和词汇业务]而准备的， 它可以把没有学习完的单词和词汇写到目标文件中，以备下次再使用时
	 * 可以让用户选择从上次结束时的点开始。 也就是说，此方法是为了固化还没有被中英文互答所使用过的数据
	 * 
	 * @param map
	 *            存放了还没有被中英文互答所使用过的数据
	 * @param fileName
	 *            文件名
	 */
	void writeToFile(Map<String, String> map, String fileName);

	/*******
	 * 从指定文件中读出之前被持久化的数据，以便接着上次没有答完的继续
	 * 
	 * @param fileName
	 * @return
	 */
	Map<String, String> readFromFile(String fileName);

}
